Architecture Patterns
Architecture Patterns
Architecture pattern
is a package of design decisions that is found repeatedly in practice,
has known properties that permit reuse, and describes a class of architectures.
Architecture pattern establishes a relationship between:
A context: A recurring, common situation in the world that gives rise to a problem.
A problem: The problem, appropriately generalized, that arises in the given context.
A solution: A successful architecture resolution to the problem, appropriately abstracted.
Elements + Relations + Constraints
Module View/Style
Layered Pattern
micro-kernel-pattern?
Component-Connector View/Style
Broker Pattern
MVC(Model-View-Controller Pattern)
Pipe-and-Filter Pattern
Client-Server Pattern
Peer to Peer Pattern
Service - Oriented Pattern
Publish - Subscribe Pattern
Shared Data Pattern
Allocation View/Style
Map Reduce Pattern
Multi-Tier Pattern
Pattern vs Tactics
Tactics are simpler than patterns; they use a single structure or mechanism to address a single architectural force.
Patterns typically combine multiple design decisions into a package.
Patterns and tactics together constitute the software architect’s primary tools.
Tactics are “building blocks” of design from which architectural patterns are created.
Most patterns consist of several different tactics that may:
all serve a common purpose,
be often chosen to promise different quality attributes.
